// pages/detail-class/index.js
import { Serve } from '../../utils/index'
Page({
	/**
	 * 页面的初始数据
	 */
	data: {
		classInfo: null,
		signs: null,
		latestSign: null,
		role: null,
		code: '',
    icon: {
      'doc': '/icons/icon-word.svg',
      'docx': '/icons/icon-word.svg',
      'ppt': '/icons/icon-ppt.svg',
      'pptx': '/icons/icon-ppt.svg'
    },
    showInfo: true
	},

	handleCodeInput(e) {
		const code = e.detail.value.toUpperCase()
		this.setData({ code })
	},

  showInfo() {
    this.setData({ showScore: false })
  },

  showScore() {
    this.setData({ showScore: true })
  },


	addSignRecord(e) {
		const { code, class_id, sign_id, done } = e.currentTarget.dataset
		const { latestSign } = this.data
		// 获取用户输入的签到码
		const userCode = this.data.code
		// 模拟按钮disabled效果
		if (done) {
			return 0
		}
		if (!userCode) {
			wx.showToast({ title: '请输入签到码', icon: 'error', mask: true })
			return 0
		}
		// 如果签到码错误则停止函数
		if (userCode !== code) {
			wx.showToast({ icon: 'error', title: '签到码错误', mask: true })
			return 0
		}
		wx.showLoading({ title: '签到', mask: true })
		Serve.AddSignRecord({ class_id, sign_id })
		// 修改当前状态
		latestSign.done = true
		this.setData({ latestSign })
		wx.showToast({ title: '成功', icon: 'success', mask: true })
	},

	// 教师查看考勤列表事件
	viewSignDetail(e) {
		const { signs } = this.data
		const index = e.currentTarget.dataset.id
		signs[index].visible = !signs[index].visible
		this.setData({ signs })
	},

	// mark: 查看文件
	previewFile(e) {
		const { fileid } = e.currentTarget.dataset
		wx.showLoading({ title: '预览文件', mask: true })
		wx.cloud.downloadFile({
			fileID: fileid, // 文件 ID
			success: (res) => {
				// 返回临时文件路径
				let path = res.tempFilePath //返回的文件临时地址，用于后面打开本地预览所用
				wx.openDocument({
					filePath: path,
					showMenu: true,
					success: function (res) {
						console.log('打开成功')
						wx.hideLoading()
					},
					fail(err) {
						console.error('出错了', err)
						wx.showToast({
							title: '出错了',
							icon: 'error',
							mask: true,
							duration: 800,
						})
					},
				})
			},
		})
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	async onLoad(options) {
		const { id } = options
		const role = wx.getStorageSync('role')
		const openid = wx.getStorageSync('openid')
		wx.showLoading({ title: '获取详情', mask: true })
		const result = await Serve.GetClassDetail({ class_id: id, role })
		const signIndex = result.signs.length - 1
		const noticeIndex = result.notices.length - 1
		this.setData({
			role, // 身份
			classInfo: result.classInfo, // 班级基本信息
			signs: result.signs, // 班级签到任务
			latestSign: result.signs[signIndex], // 班级最新签到任务
			notices: result.notices, // 班级公告
			latestNotice: result.notices[noticeIndex], // 班级最新公告
			files: result.files, // 班级教师文件
			scores: result.scores, // 班级平时分情况
		})
		wx.hideLoading()
	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady() {},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow() {},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide() {},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload() {},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh() {},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom() {},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage() {},
})
